package com.bonc.modules.rpt.service;

import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bonc.modules.rpt.entity.UserColumnEntity;
import com.bonc.modules.rpt.param.FixParam;
import com.bonc.modules.rpt.param.UserColumnParam;
import com.bonc.modules.rpt.result.DynamicColumnResult;

import java.util.ArrayList;
import java.util.List;

/**
 * @author jinlong
 * @date 2021/7/20
 */
public interface DynamicService extends IService<UserColumnEntity> {

    List<DynamicColumnResult> getConfigTableColumns(String tableName);

    List<DynamicColumnResult> getDefaultTableColumns(String tableName);

    List<DynamicColumnResult> getUserColumn(String tableName);

    boolean modifyUserColumn(UserColumnParam userColumnParam);


    /**
     * 获取最大数据日期
     *
     * @return 最大数据日期(yyyy-MM-dd)
     */
    default String getMaxDate(String tableName) {
        return DateUtil.yesterday().toDateStr();
    }

    /**
     * 获取报表分页数据
     *
     * @param fixParam 固定报表参数
     * @return
     */
    Page queryPage(FixParam fixParam);

    /**
     * 获取报表数据
     *
     * @param fixParam 固定报表参数
     * @return
     */
    default List queryData(FixParam fixParam) {
        return new ArrayList<>();
    }
}
